package com.meta.platform.contract.domain.tunnel.db;

import com.meta.platform.contract.domain.aggr.ContractFundRecordDo;
import com.meta.platform.contract.intf.entity.ContractFundRecord;
import com.meta.platform.contract.intf.ro.ContractFundRecordRo;

import java.util.List;

/**
 * 合同回款记录
 *
 * @author M.simple
 * @email 1111111111111@qq.com
 * @date 2020-12-08 15:53:39
 */
public interface ContractFundRecordRepository {

    /**
     * insert contractFundRecord info
     *
     * @param contractFundRecord:
     * @return void
     * @method insertContractFundRecord
     * @author M.simple
     * @date 2020-12-08 15:53:39
     */
    void insertContractFundRecord(ContractFundRecordDo contractFundRecord);

    /**
     * batch insert contractFundRecord info
     *
     * @param contractFundRecords:
     * @return void
     * @method insertContractFundRecord
     * @author M.simple
     * @date 2020-12-08 15:53:39
     */
    void batchInsertContractFundRecord(List<ContractFundRecord> contractFundRecords);

    /**
     * update contractFundRecord info
     *
     * @param contractFundRecord:
     * @return int
     * @method updateContractFundRecord
     * @author M.simple
     * @date 2020-12-08 15:53:39
     */
    int updateContractFundRecord(ContractFundRecord contractFundRecord);

    /**
     * update contractFundRecord info By pk
     *
     * @param contractFundRecord:
     * @return int
     * @method updateContractFundRecordByPk
     * @author M.simple
     * @date 2020-12-08 15:53:39
     */
    int updateContractFundRecordByPk(ContractFundRecord contractFundRecord);

    /**
     * list contractFundRecord info
     *
     * @param contractFundRecord:
     * @return List<ContractFundRecord>
     * @method listContractFundRecord
     * @author M.simple
     * @date 2020-12-08 15:53:39
     */
    List<ContractFundRecord> listContractFundRecord(ContractFundRecordRo contractFundRecord);

    List<ContractFundRecordDo> listContractFundRecordDo(ContractFundRecordRo contractFundRecord);

    ContractFundRecordDo getById(Long id);

}
